#!/usr/bin/env python
# -*- coding: utf-8 -*-

'''List的两种排列方式'''
lst = ["I", "like", "Python"]

'''从左往右(0~n),不包含结束位置'''
print lst[1:2]
'''从右到左（-1~-n),不包含结束位置'''
print lst[-3:-1]

numberList = [1, 2, 3, 4, 5, 6]
print numberList
'''反转list'''
print numberList[::-1]

lang = "Python"
'''反转Str'''
print lang[::-1]
'''使用reversed函数实现反转'''
print list(reversed(numberList))
'''获取list中的元素个数'''
print len(numberList)
'''两个list的拼接,结果为:['I', 'like', 'Python', 1, 2, 3, 4, 5, 6]'''
print lst + numberList
'''list元素的重复新增'''
print numberList * 3

'''判断list中是否包含某个特定的元素'''
if "Python" in lst:
    print "Python is in lst"
else:
    print "Python isn't in lst"

'''根据ASCII编码来对list中的元素进行排序并获取最大最小值'''
print max(numberList)
print min(numberList)

'''对现有的list追加新的元素,append 是整建制地追加'''
numberList.append(7)
print numberList
'''追加新元素的新方法'''
numberList[len(numberList):] = [8]
print numberList

'''将一个list加到另一个list中,extend 是个体化扩编'''
numberList2 = [9, 10, 11, 12, 13, 14, 15]
numberList.extend(numberList2) # 此处不能直接打印,因为.extend()方法是没有返回值的
print numberList

'''检测某个特定对象在list中出现的次数'''
print numberList.count(11)

'''向list的指定位置插入新对象'''
numberList2.insert(len(numberList2), 16)
print numberList2
lst.insert(1, "very")
print lst

'''从list中删除指定的元素,当在list中存在多个相同元素的话,只会删除第一个'''
testStr = ["AIA", "Technology", "Shared", "Services"]
testStr.remove("Shared")
print testStr

'''先做判断,再去删减,因为当想要删除的元素不再list中时,程序会崩溃'''
if "AIA" in testStr:
    testStr.remove("AIA")
    print testStr
else:
    print "testStr isn't in AIA"

'''根据元素的排序删除指定的元素'''
testStr2 = ["Pactera", "Technology", "Shared", "Services"]
testStr2.pop() # 当pop的括号内没有填入任何数值的话,默认删除最后一个元素
print testStr2
testStr2.pop(2)
print testStr2

'''list排序'''
lst.sort(key = len)
print lst